תושירדהו הדובעה תרדגה

Similar documents
Practical Session No. 13 Amortized Analysis, Union/Find

מכונת מצבים סופית תרגול מס' 4. Moshe Malka & Ben lee Volk

תצוגת LCD חיבור התצוגה לבקר. (Liquid Crystal Display) המערכת.

מבוא למחשב בשפת פייתון

טכנולוגיית WPF מספקת למפתחים מודל תכנות מאוחד לחוויית בניית יישומיי


ניפוי שגיאות )Debug( מאת ישראל אברמוביץ

קשירות.s,t V שני צמתים,G=(V,E) קלט: גרף מכוון מ- s t ל- t ; אחרת.0 אם יש מסלול מכוון פלט: הערה: הגרף נתון בייצוג של רשימות סמיכות.

Hebrew Ulpan HEB Young Judaea Year Course in Israel American Jewish University College Initiative

המבנה הגאומטרי של מידה

Patents Basics. Yehuda Binder. (For copies contact:

עץ תורשה מוגדר כך:שורש או שורש ושני בנים שכל אחד מהם עץ תורשה,כך שערך השורש גדול או שווה לסכום הנכדים(נכד-הוא רק בן של בן) נתון העץ הבא:

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 102 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 5

אנגלית שאלון ז' ג רסה א' הוראות לנבחן בהצלחה! )4( ההנחיות בשאלון זה מנוסחות בלשון זכר ומכוונות לנבחנות ולנבחנים כאחד. (MODULE G)

שאלון ד' הוראות לנבחן

A JEW WALKS INTO A BAR: JEWISH IDENTITY IN NOT SUCH JEWISH PLACES

Summing up. Big Question: What next for me on my Israel Journey?

אנגלית (MODULE E) בהצלחה!

תרגול 8. Hash Tables

ASP.Net MVC + Entity Framework Code First.

שאלון ו' הוראות לנבחן

Name Page 1 of 6. דף ט: This week s bechina starts at the two dots in the middle of

מדריך למשתמש בשירות. yes MultiRoom

ANNEXURE "E1-1" FORM OF IRREVOCABLE STANDBY LETTER OF CREDIT PERFORMANCE OF CONTRACT (WHERE PRICES ARE NOT LINKED TO AN ESCALATION FORMULA)

שאלון ו' הוראות לנבחן

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון ב' Corresponds with Module B גרסה ב' הוראות לנבחן

א נ ג ל י ת בהצלחה! ב. משרד החינוך בגרות לנבחנים אקסטרניים )מילון הראפס אנגלי-אנגלי-ערבי( השימוש במילון אחר טעון אישור הפיקוח על הוראת האנגלית.

DNS פרק 4 ג' ברק גונן מבוסס על ספר הלימוד "רשתות מחשבים" עומר רוזנבוים 1

מדריך למשתמש התקנה עצמית

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

Ron Famini, Lior Bar,

מספר השאלון: Thinking Skills נספח: כישורי חשיבה )לפרק ראשון ושני( א נ ג ל י ת (MODULE F) ספרות )מילון הראפס אנגלי-אנגלי-ערבי(

מבוא לתכנות ב- JAVA תרגול 7

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

Depth-First Search DFS

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון א' Corresponds with Module A (Without Access to Information from Spoken Texts) גרסה א'

Rules Game (through lesson 30) by Nancy Decker Preparation: 1. Each rule board is immediately followed by at least three cards containing examples of

(MODULE E) ב ה צ ל ח ה!

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE F) ספרות או: מילון אנגלי-ערבי / ערבי-אנגלי או: מילון אנגלי-אנגלי-ערבי

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי

תרגול 11 תור עץ חיפוש בינארי

Checkers Cheaters Eliran Moyal & Moti Berger

Reflection Session: Sustainability and Me

State Pattern מימוש מכונת מצבים (FSM) מבוא בעיה תמיכה ועדכונים עדכון מס' 48 מאי 2002

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE F) ספרות מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי

Advisor Copy. Welcome the NCSYers to your session. Feel free to try a quick icebreaker to learn their names.

אנגלית ספרות בהצלחה! /המשך מעבר לדף/ נספח: כישורי חשיבה )לפרק ראשון ושני( או: מילון אנגלי-ערבי / ערבי-אנגלי או: מילון אנגלי-אנגלי-ערבי

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות או מילון אנגלי-עברי-עברי-אנגלי

מדריך שימוש בדואר האלקטרוני

Chofshi.

1.1. הקדמה (דיסק). מדריכי. (מחיצות) Link

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות או מילון אנגלי-עברי-עברי-אנגלי

מיהו המורה הנושר? מאפיינים דמוגרפיים,תעסוקתיים ומוסדיים של הנשירה מהוראה

מבוא לתרבות סייבר שיעור מס

מושגים בסיסיים תלמידים והורים יקרים,

זו מערכת ישרת זוית )קרטזית( אשר בה יש לנו 2 צירים מאונכים זה לזה. באותו מישור ניתן להגדיר נקודה על ידי זוית ורדיוס וקטור

אנגלית שאלון ז' (MODULE G) ג רסה א' הוראות לנבחן )מילון אנגלי-ערבי / ערבי-אנגלי )

דיאלוג מומחז בין מרטין בובר וקרל רוג'רס

אוסף תרגילים למעבדה ביוניקס - 4

Computer Structure. Exercise #1 יש להגיש את התשובות הסופיות על גבי טופס זה.

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 134 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 37

מבוא לרשתות - תרגול מס' 11 Transparent Bridges

מבוא למדעי המחשב תרגיל מספר 4

עקרונות תכנות מונחה עצמים

מדריך לניהול VPS טריפל סי מחשוב ענן בע"מ.

The Connection between Town Planning, Public Taking (Appropriation) and Land Appraisal

בהצלחה! (MODULE C) Hoffman, Y. (2014). The Universal English-Hebrew, Hebrew-English Dictionary

ãówh,é ËÓÉÔê ÌW W É Å t" Y w f É ËÓÉÑ É èw É f Ñ u ð NNM YóQ' ÌW W É Y ÉgO d óqk É w f ym Éd É u ð NNM ÌWNQMH uqo ð NNM ÌWNQMH

ב. משרד החינוך בגרות לנבחנים אקסטרניים א נ ג ל י ת (MODULE B) הוראות מיוחדות: )2( בתום הבחינה החזר את השאלון למשגיח. בהצלחה!

מדריך למשתמש התקנה עצמית

הקדמה בדיקת תמיכה ב- SSL מאת עידו קנר

WHAT IS THE PSHAT OF A METAPHORICAL MITZVAH?

ב. משרד החינוך בגרות לנבחנים אקסטרניים א נ ג ל י ת (MODULE B) הוראות מיוחדות: )2( בתום הבחינה החזר את השאלון למשגיח. בהצלחה!

כפתור רדיו בחירה בודדת מתוך רשימת אפשרויות

NJ NCSY Winter Regional פירסומי ניסא Publicizing the Miracle of Hanukah

פולימורפיזם. blog.csit.org.il מדעי המחשב

בהגדרות ה AP..connections

בוחן בתכנות בשפת C בצלחה

פרק מיון וחיפוש - לשם מה? הגדרה

תורשכ ירפס לכ ץבוק " ב י קלח יללכ רעש

סה"כ נקודות סה"כ 31 נקודות סה"כ 21 תוכן עניינים של פתרון המבחן. לולאת for )נתון אלגוריתם... מעקב, פלט

כיורי גרניט כיורי מטבח עשויים גרניט להתקנה שטוחה, עמידות מלאה בפני שריטות וכתמים, עמידות בחום עד C ניקוי קל ומהיר צבע שאינו דוהה

TAKE ACTION. Unit1. Part A. Pre-Reading Before page 8. A Match each letter to the two letters that follow it in the alphabetical order.

תכנות בטוח חלק ב ' מאת עידו קנר

FULL ARTICLE ACTIVE DIRECTORY

ראש השנה דף. 1. A) Our משנה says,... שנראה בעליל בין שלא נראה בעליל.בין Based on this,פסוק what does the word עליל mean?

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

שבות תחום מצוות עשה שזמן גרמא סמיכה תקיעה, שברים, תרועה. The אי ור of performing any מלאכה on Rosh HaShanah שופר in preparation of the

Apple, keys, pen, pencils, pencilbox,(toy)elephant,( toy) boy, (toy) girl, ball

THINKING ABOUT REST THE ORIGIN OF SHABBOS

Theories of Justice

A R E Y O U R E A L L Y A W A K E?

Genetic Tests for Partners of CF patients

FAIL CONFR URE ONTING

SPSS 10.0 FOR WINDOWS

המחלקה למדעי המחשב, אוניברסיטת בן גוריון מבני נתונים, סמסטר אביב 2102 עבודת בית מספר - 2 מעשית

FULL ARTICLE ACTIVE DIRECTORY

הגדרות טלפון פוליקום בקישור הבא יש טבלה מסודרת שבה מופיעים כל סוגי הטלפון ולאיזה גירסא ניתן לשדרג

חוק זכויות הסוכן חוק חוזה סוכנות )סוכן מסחרי וספק(

פיזיקה של נהיגה מדריך למורה

Transcription:

ארבע בשורה פרוייקט בינה מלאכותית בפרולוג מגיש: ערן קמפף

הגדרת העבודה והדרישות מטרת התוכנית לאפשר לשחקן לשחק את המשחק "ארבע בשורה" נגד המחשב. הדרישות מהתכנית הן: 1. ממשק נוח למשתמש: התכנית צריכה לתת למשתמש הסבר ברור וקריא בזמן הריצה. על הממשק לאפשר למשתמש לשחק ולבצע פעולות שונות בנוחות. כמו כן על הממשק לאפשר לבצע פעולות אלמנטריות כמו יציאה, קבלת עזרה וכדומה. 2. טפול בשגיאות: התכנית לא יכולה להניח שהקלט מהמשתמש תקין ואליה לטפל בקלט שגוי. 3. התכנית תגדיר לוח בגודל NxN ותגביל את N לתחום הרצוי, התכנית עצמה תהיה כללית, כלומר החוקים יעבדו לכל מספר N. מימוש התכנית: התכנית ממושת תוך שימוש בפרולוג של AMZI (www.amzi.com) תיאור המשחק "ארבע בשורה" לוח המשחק הוא למשל בגודל 8x8. הכוונה המוחשית היא לשמונה עמודים שעליהם ניתן להשחיל טבעות. השחקן והמחשב, כל אחד בתורו משחיל טבעת על עמוד לפי בחירתו. הטבעת "נופלת" למטה עד כמה שניתן. המטרה היא ליצור שורה של ארבע טבעות: במאוזן, במאונך או באלכסון.

תיאור מבנה התכנית והאלגורתמים בהם היא משתמשת התכנית מורכבת משני חלקים: - חלק אחד אחראי על המשחק עצמו ועל הבינה המלאכותית. חלק זה משתמש בחוקים שונים כדי לבצע מניפולציות על לוח המשחק (ביצוע המהלכים) ושיטות חיפוש על מנת לבצע את מהלכי המחשב. - החלק השני אחראי על הקלט והפלט. חלק זה משתמש בפונקציות שונות להגדרת ממשק פקודה נוח למשתמש. חלק ראשון: הבינה המלאכותית החוק המרכזי האחראי לפעולת הבינה המלאכותית הוא think(pos) המקבל את מצב הלוח הנוכחי Pos ובודק איזה מהלך יעיל ניתו לבצע. לחוק 6 חלקים כשכל אחד מהם מייצג אסטרטגיה משחק כלשהיא לפי סדר העדיפות שלה (לדוגמא ביצוע מהלך מנצח עדיף על חסימת היריב). 1. בודק תבוסה. דבר ראשון בודק המחשב אם הוא הובס ע"י השחקן, במקרה זה יסתיים המשחק. 2. מהלך התקפי (נסיון לנצח). המחשב בודק אם הוא יכול לבצע מהלך מנצח מהלוח שיגרום לו לנצח במשחק, או מהלך בדרך לניצחון בדרך להשלמת רצף. 3. מהלך הגנתי. בחלק זה מבצע המחשב מהלך הגנתי חסימת היריב או מהלך רגיל (מהלך שמטרתו לפתוח אפשרויות להתקפה). חלק זה שומר את המהלך הטוב האחרן שהוא מצא כחוק דינמי.last_good_move(Pos) 4. ביצוע המהלך הטוב האחרון שנמצע. אם מהלך כלשהוא נמצע בחלק הקודם אז הוא יבוצע. 5. מהלך בלית ברירה. המחשב לא מצא אף מהלך "טוב" ולכן מבצע מהלך סתמי. אסטרטגיה 1: בדיקת תבוסה המחשב בודק ע"י שימוש בחוק Pos) victory(player, אם בלוח הנוכחי יש רצף של השחקן. אם כן, מסתיים המשחק. אסטרטגיה 2: מהלך התקפי המחשב מנסה לבצע מהלך מנצח. החוק שאחראי על ביצוע חיפוש המהלך הוא,try_to_win(Pos) חוק זה מבצע מהלך אפשרי ואז בודק אותו ע"י החוק,is_it_win(Pos) כלומר הוא עובר על כל הבנים של הלוח הנוכחי בעץ המשחק ובודק כל בן ע"י החוק.is_it_win(Pos) לחוק is_it_win(pos) שני חלקים: 1. בודק אם בלוח הנבדק Pos (אחד הבנים של לוח המשחק הנוכחי בעץ המשחק) יש למחשב רצף. אם כן יבצע במחשב את המהלך והמשחק מסתיים בנצחון המחשב. 2. המחשב מחפש מהלך שיעזור לו לנצח אבל לא יתן ליריב אפשרות לבצע מהלך מנצח. כדי לחפש מהלך שכזה משתמש is_it_win/1 בחוק

Deep) win(player, Pos, כשעומק הסריקה נקבע ע"י העובדה.win_deep(X) החוק win סורק עד לעומק המוגדר ומנסה להגיע לניצחון, על על ירידה בעץ המשחק (ביצוע מהלך) הוא בודק שהיריב לא חכול להגיב בתגובה שתבים לניצחונו. אסטרטגיה 3,4: מהלך הגנתי המחשב מנסה לבצע מהלך הגנתי. החוק שאחראי על ביצוע חיפוש המהלך הוא try_nolose(pos), חוק זה מבצע מהלך ובודק אותו ע"י הסריקה.nolose_deep(X) כשהעומק נקבע ע"י העובדה nolose(player, Pos, Deep) הסריקה של nolose היא בעצם הפוכה ל- win ומהווה בעצם את סריקת ה- win של השחקן היריב, המחשב בודק איזה צעדים יכול לנסות היריב כדי לנצח. המחשב מקבל צעד כצעד "טוב" (צעד שניצן לבצעו) אם החוק nolose לא הצליח להגיע לנצחון היריב לאחר צעד זה. הצעד ה"טוב" שהתקבל נשמר כעובדה דינמית:.last_good_move(Pos) במידה ויבוצע backtracing והמחשב יחפש וימצא צעד אחר תעודכן עובדה זו בפרטי הצעד ה"טוב" החדש. גורם הרנדומיזציה: כדי להפוך את משחק המחשב ליותר מגוון ולשפר את ביצועי המשחק והזמן, מוגדר סיסוי מסויים שהמחשב יקבל צעד מסויים ולא ימשיך ב- backtracing כדי למצוא עוד צעדים, סיכוי זה הוא (1-X)/1 כש- X נקבע ע"י העובדה.random_factor(X)

חלק שני: קלט/פלט בקבלת הקלט מהמשתמש רציתי שהמשתמש יוכל להשתמש בפקודות בשפה אנגלי פשוטה כמו 2 go 2, goto וכדומה ולכן היתי צריך לפתח מערכת שתקבל שורת קלט ותנתח אותה תחבירית לפקודה ופרמטרים של פקודה. לשם כך הגדרתי את חוקי התחביר של הפקודות ע"י החוק,command המגדיר ארבעה סוגי פקודה: 1. פקודה המורכבת משם פקודה ופרמטר אחד ) לדוגמא: "1 "go ). 2. פקודה המורכבת משם פקודה ושני פרמטרים ) לדוגמא: 2" "set random_factor (. 3. פקודה המורכבת משם פקודה בלבד ) לדוגמא: "quit" ). 4. פקודה מיוחדת לפעולת ביצוע מהלך המקבלת פרמטר בלבד (את מספר העמודה בה מבצע השחקן את התזוזה). כל פקודה מורכבת מפועל (verb) ומשם או שמות עצם. הפועל מוגדר ע"י Verb) verb(type, כשלכל סוג פועל מוגדרים השמות שמבטאים אותו. לדוגמא, את הפועל המגדיר מהלך של השחקן ניתן לבטא ע"י מספר מילים המוגדרות בתכנה: to,,go, goto, move, move ועוד... ביטוי שם העצם מוגדר בדומה לפועל ע"י Noun) nounphrase(type, המגדיר את שם העצם שיתקבל לפי הסוג של ביטוי שם העצם. בנוסף להגדרות התחביר יש צורך בחוק שיקרא את הקלט מהמשתמש ויחזיר אותו בצורה של רשימת מילים כך שיהיה ניתן לנתח את המשפט. החוק המבצע זאת הוא read_list(l) שמראה שורת פקודה, מקבל את שורת הפקודה מהמשתמש ומחזיר שורה זו כרשימת מילים L. הפקודות המוגדרות ע"י המערכת: 1. ביצוע מהלך. הפקודות to','go' 'g','move to','move','go ולאחריהן ערך העמוד יבצעו את המהלך על העמוד המבוקש. ניתן גם להקיש רק את ערך העמוד. 2. מסך עזרה. ניתן לראות את מסך העזרה ע"י הפקודה.'help' 3. הצגת הלוח. ניתן להציג את לוח המשחק ע"י הפקודות ','show' show.'board','pos,'board 4. אתחול המשחק. ניתן לאתחל את המשחק ע"י הפקודה.'reset' 5. יציאה. ניתן לצאת מהמשחק ע"י הפקודות.'bye','end','exit','quit' 6. שינוי ערך של קבועי המשחק. ניתן לשנות את ערכם של שלושת קבעי המשחק תוך כדי הריצה ע"י <value>'.'set <game var name> קבועי המשחק הם: - win_deep קובע כמה עמוק תתבצע הסריקה ההתקפית (ראה תאור בחלק הראשון). - molose_deep - קובע כמה עמוק תתבצע הסריקה ההגנתית (ראה תאור בחלק הראשון). - random_factor קובע את הסיכוי של המחשב לקבל את המהלך ה"טוב" הנוכחי ולא להמשיך את החיפוש (ראה תאור בחלק הראשון).

ביבליוגרפיה.Ivan Bratko של PROLOG Programming for Artificial Language Adventure in Prolog Tutorial המצורף ל- AMZI מדריך לשפת פרולוD ותכנות משחק בסגנון הקווסט הישן מדריך לבניית מנגנון קלט.Natural Language Processing.1.2